﻿using System;
using System.Collections.Generic;
using System.Text;

namespace IllustratedCsharp7_ch18Generic
{
    class Simple        //非泛型类
    {
        static public void ReverseAndPrint<T>(T[] arr)  //泛型方法
        {
            Array.Reverse(arr);
            foreach (T item in arr)         //使用类型实参T
                Console.Write($"{item.ToString()}, ");
            Console.WriteLine("");
        }
    }
    class Chapt18_5GenericMethod
    {
        static void _Main()
        {
            //创建各种类型的数组
            var intArray = new int[] { 3, 5, 7, 9, 11 };
            var stringArray = new string[] {"first","second","third" };
            var doubleArray = new double[] { 3567, 7.891,2.345 };

            Simple.ReverseAndPrint<int>(intArray);   //调用方法
            Simple.ReverseAndPrint(intArray);        //推断类型并调用

            Simple.ReverseAndPrint<string>(stringArray);   //调用方法
            Simple.ReverseAndPrint(stringArray);        //推断类型并调用

            Simple.ReverseAndPrint<double>(doubleArray);   //调用方法
            Simple.ReverseAndPrint(doubleArray);        //推断类型并调用
        }
    }
}
